(function () {
    document.ondragstart = function () { return false; }
    document.onkeydown = function (event) {
        var e = event || window.event || arguments.callee.caller.arguments[0];
        // F12 show develop tools
        if ((e.which || e.keyCode) == 123 && e.shiftKey && e.altKey) {
            cefCustomObject.showDevTools();
            return true;
        }

        // F5 refresh 
        if ((e.which || e.keyCode) == 116) {
            location.reload(true);
            return true;
        }
    }

    window._czc_push = function(a) {
        try {
            _czc.push(a);
        } catch (e) {

        }
    }

    window.ln = function () {
        var e = new Error();
        if (!e.stack) try {
            // IE requires the Error to actually be throw or else the Error's 'stack'
            // property is undefined.
            throw e;
        } catch (e) {
            if (!e.stack) {
                return 0; // IE < 10, likely
            }
        }
        var stack = e.stack.toString().split(/\r\n|\n/);
        // We want our caller's frame. It's index into |stack| depends on the
        // browser and browser version, so we need to search for the second frame:
        var frameRE = /:(\d+):(?:\d+)[^\d]*$/;
        do {
            var frame = stack.shift();
        } while (!frameRE.exec(frame) && stack.length);
        return frameRE.exec(stack.shift())[1];
    }

})();